home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 April / CHIP4_98.ISO / software / ccconrad / c-control setup / _setup.1 / 006.BAS < prev    next >
Encoding:
BASIC Source File  |  1997-02-16  |  4.2 KB  |  171 lines

  1. '********************************************************************
  2. '
  3. ' C-Control/BASIC       006.BAS
  4. '
  5. ' Systemvoraussetzungen:
  6. '
  7. ' - Low-Current-LEDs an Port 1 bis Port 8, Vorwiderstand ca. 1k,
  8. '   alle Kathoden nach GND 
  9. '
  10. ' Schwerpunkte:
  11. '
  12. ' - Definition und Schalten von Digitalports
  13. ' - die Befehle TOG und DEACT
  14. ' - Hexadezimal- und Binaerzahlendarstellung
  15. ' - der PAUSE-Befehl zur Steuerung des zeitlichen Programmablaufs
  16. ' - mehrere Anweisungen in einer Zeile - mit Doppelpunkt getrennt
  17. '
  18. ' Neben dem Gewinnen von Erfahrungen bezueglich der genannten
  19. ' Schwerpunkte koennen Sie hier auch die Funktion der roten
  20. ' System-LED gut erkennen. Waehrend der PAUSE-Zeiten ist sie
  21. ' ausgeschaltet, bei allen anderen Programmoperationen eingeschaltet.
  22. ' Sie bietet somit eine zusaetzliche optische Kontrolle der
  23. ' Programmfunktion.
  24. '********************************************************************
  25.  
  26. ' --- Definitionen --------------------------------------------------
  27.  
  28. ' alle LEDs zusammen
  29. define leds byteport[1]
  30.  
  31. ' einzelne LEDs
  32. define led1 port[1]
  33. define led2 port[2]
  34. define led3 port[3]
  35. define led4 port[4]
  36. define led5 port[5]
  37. define led6 port[6]
  38. define led7 port[7]
  39. define led8 port[8]
  40.  
  41. ' eine Schleifenvariable
  42. define k byte
  43.  
  44. ' --- Programmoperationen -----------------------
  45.  
  46. ' alle LEDs an- und ausschalten, dazwischen eine Sekunde Pause
  47. ' dazu muessen alle Bits an Port 1 (leds) gesetzt werden,
  48. ' dafuer gibt es vier syntaktische Moeglichkeiten:
  49.  
  50. ' Dezimal-Variante:
  51.  
  52.   leds = 255
  53.   pause 50              ' 50 x 20ms = 1000ms = 1s 
  54.   leds = 0
  55.   pause 50
  56.  
  57. ' Hexadezimal-Variante:
  58.  
  59.   leds = &HFF    
  60.   pause 50
  61.   leds = &H00
  62.   pause 50
  63.  
  64. ' Binaer-Variante:
  65.  
  66.   leds = &B11111111
  67.   pause 50
  68.   leds = &B00000000
  69.   pause 50
  70.  
  71. ' ON/OFF-Variante:
  72.  
  73.   leds = ON
  74.   pause 50
  75.   leds = OFF
  76.   pause 50
  77.  
  78. ' die LEDs sind jetzt 4x ein- und ausgeschaltet worden
  79.  
  80. ' die Binaer-Variante ist bei der Ausgabe von Bitmustern
  81. ' am besten ueberschaubar, da jede 1 einem gesetzten und
  82. ' jede 0 einem ausgeschalteten Port entspricht,
  83. ' hier noch ein paar Bitmuster-Beispiele mit jeweils
  84. ' 500 ms Pause dazwischen:
  85.  
  86.   leds = &B00011000
  87.   pause 25              ' 25 x 20ms = 500ms
  88.   leds = &B00100100
  89.   pause 25
  90.   leds = &B01000010
  91.   pause 25
  92.   leds = &B10000001
  93.   pause 25
  94.  
  95. ' Ausgabe aller moeglichen Zustände eines Byte-Ports mit 100ms
  96. ' Pause dazwischen
  97.  
  98.   for k = 0 to 255
  99.     leds = k
  100.     pause 5            ' 5 x 20ms = 100ms
  101.   next
  102.  
  103. ' alle LEDs sind nun eingeschaltet, jetzt soll der DEACT-Befehl
  104. ' demonstriert werden:
  105.  
  106.   deact leds
  107.  
  108. ' achten Sie auf die LEDs - sie leuchten sehr schwach, sind aber nicht
  109. ' ausgeschaltet. Ursache dafuer ist, dass die LED-Ports deaktiviert
  110. ' wurden und jetzt allein der Strom durch die 10k-Pull-Up-Widerstaende
  111. ' die LEDs leicht glimmen laesst. In diesem Zustand befinden sich alle
  112. ' Ports nach dem Reset oder dem Einschalten der Betriebsspannung.
  113.  
  114. ' 5 Sekunden Pause, dann werden die LEDs ausgeschaltet, um nocheinmal
  115. ' den Unterschied zwischen "ausgeschaltet" und "deaktiviert" zu zeigen:
  116.  
  117.   pause 250            ' 250 x 20ms = 5000ms = 5s
  118.   leds = 0
  119.   pause 250            
  120.  
  121. ' nun ein kleines Lauflicht-Beispiel, hier wird gezeigt, wie der
  122. ' Stand von Portvariablen jederzeit fuer Berechnungen herangezogen
  123. ' werden kann
  124.  
  125.   leds = &B10000000
  126.  
  127.   for k = 1 to 8
  128.     pause 20
  129.     leds = leds shr 1
  130.   next
  131.  
  132. ' der TOG-Befehl dient zum Umschalten einzelner Ausgabeports,
  133. ' er wirkt nur auf aktive Ports
  134.  
  135.   tog led8
  136.   pause 25
  137.   tog led8
  138.   pause 25
  139.   tog led8
  140.   pause 25
  141.   tog led8
  142.   pause 25
  143.  
  144. ' abschliessend werden jetzt alle LEDs einzeln geschaltet,
  145. ' ausserdem wird gezeigt, wie mehrere Anweisungen in einer Zeile
  146. ' geschrieben werden koennen
  147.  
  148.   led1 = ON :  pause 20
  149.   led2 = ON :  pause 20
  150.   led3 = ON :  pause 20
  151.   led4 = ON :  pause 20
  152.   led5 = ON :  pause 20
  153.   led6 = ON :  pause 20
  154.   led7 = ON :  pause 20
  155.   led8 = ON :  pause 20
  156.  
  157.   led8 = OFF :  pause 20 : led7 = OFF :  pause 20
  158.   led6 = OFF :  pause 20 : led5 = OFF :  pause 20
  159.   led4 = OFF :  pause 20 : led3 = OFF :  pause 20
  160.   led2 = OFF :  pause 20 : led1 = OFF :  pause 20
  161.  
  162.  
  163. ' Ports deaktivieren und Programmende
  164.   deact leds
  165. end
  166.  
  167.  
  168.  
  169.  
  170.  
  171.